# -*- coding: utf-8 -*-
"""
File Name: 计算最大公约数和最小公倍数.py

@author: lengf
@date: 2025-04-14
@email: lengfo@163.com
@version: 1.0.0
"""



# 最大公约数的算法：
# 1. 选取两个数的较小值和较大值
# 2. 若较大值除以较小值余0，则较小值是较大值的最大公约数
# 3. 否则，较小值减1，重复步骤2
# 最小公倍数的算法：
# 1. 选取两个数的较小值和较大值
# 2. 计算较大值乘以较小值除以较大值余0的结果
# 3. 若结果大于最小公倍数，则更新最小公倍数
# 4. 否则，较小值加1，重复步骤2

x = int(input('x = '))
y = int(input('y = '))
if x > y:
    (x, y) = (y, x)   # 确保x是较小值 x和y的顺序无所谓
for factor in range(x, 0, -1):   # range语句意思是从x开始，到0结束，步长为-1，即逆序，即从大到小0到x-1
    if x % factor == 0 and y % factor == 0:  # 若x和y都能被factor整除，则factor是它们的最大公约数
        print('%d和%d的最大公约数是%d' % (x, y, factor))
        print('%d和%d的最小公倍数是%d' % (x, y, x * y // factor))
        break
